The present invention generally relates to data reproducing systems, and, more particularly, to a data reproducing system that can decode data with higher precision even if there are errors in the data.
Magneto-optical recording and reproducing devices that are data recording and reproducing systems include various kinds of devices, varying from image information recording and recording devices to computer-readable code recording devices. As magneto-optical recording media have a large capacity and high compatibility, and exhibit high reliability with such devices, magneto-optical recording and reproducing devices are rapidly spreading in the market. Especially, with optical disk recording devices, optical disk media are expected to have larger data recording capacities.
While the data recording density of recording media is becoming higher in optical disk recording devices, there is an increasing demand for a method of performing data recording and reproducing with higher precision. As such a method of recording and reproducing data with higher precision, there are techniques such as the low density parity check (LDPC) or a turbo decoding technique by which data are turbo encoded and are recorded on a recording medium, and the data reproduced from the recording medium are decoded. In accordance with such a method, the data stream to be recorded is temporarily rearranged and is then modulated. The modulated signals are recorded on a recording medium. At the time of reproduction, the modulated signals are reproduced from the recording medium. When the reproduced signals are decoded, a unit decoding process is iteratively carried out so as to reproduce the original data.
The above described turbo encoding involves codes with great encoding gain, and is now drawing more and more attention in the fields of communication technology.
FIG. 1 illustrates the structure of an optical disk device as an example of a data recording and reproducing device that records data on an optical disk such as a magneto-optical disk and reproduces the data through iterative decoding. In the following, the operation of the optical disk device is described, with reference to the accompanying drawings.
The data recording and reproducing device 100 shown in FIG. 1 includes a recording system 110, an optical disk 120 as a recording medium, and a reproducing system 130.
The recording system 110 of the data recording and reproducing device 100 of FIG. 1 includes an ECC (error correcting code) encoder 111, an encoder unit 112, and a laser driver circuit 116. The encoder unit 112 encodes a data stream with error correcting codes through data encoding or the like. The error correcting codes are output from the ECC encoder 111. The encoder unit 112 of the recording system 110 of the data recording and reproducing device 100 shown in FIG. 1 includes an encoder 113, a MUX and puncture unit 114, and an interleaver (π) 115.
Using input user data Uk 160 as information symbols, the ECC encoder 111 generates corresponding check symbols from the information symbols. The ECC encoder 111 combines the user data 160 and the check symbols, and outputs them as error correcting codes. After generating the error correcting codes, the ECC encoder 111 may perform interleave and then output the error correcting codes.
At the time of decoding, the error correcting codes encoded by the ECC encoder 111 can correct an error that is caused in the error correcting codes through recording or reproducing performed on the recording medium. Such an error can be corrected by calculating the error location and the error value in the error correcting codes, which is the first method. If the location of an error caused in the error correcting codes is already known, the data at the error location may be regarded as lost, and lost correction may be performed, which is the second method. In general, a larger number of errors can be corrected in one error correcting code by the second method of lost correction than by the first method of error correction. To perform lost correction, however, the location of lost data needs to be detected in advance, as described above.
The encoder 113 generates a string of parity bits pk 162 corresponding to an ECC encoder output 161 to be recorded. FIG. 2 shows an example structure of the encoder 113. The encoder 113 shown in FIG. 2 includes adders 201 and 202, and delay elements 203 and 204. The delay elements 203 and 204 may be formed with shift registers. The ECC encoder output 161 is input to the adder 201, and is then combined with the outputs of the delay elements 203 and 204. The output of the adder 201 is input to the delay element 203. The adder 201 and the delay elements 203 and 204 constitute a feedback unit. Meanwhile, the parity bit string pk 162 is formed by the adder 202 adding the output of the adder 201 and the output of the delay element 204.
The MUX and puncture unit 114 shown in FIG. 1 combines the ECC encoder output 161 and the parity bit string pk 162 generated from the encoder 113 in compliance with predetermined rules, and thins out the obtained bit string in compliance with predetermined rules (a puncture function), thereby generating an encoded data bit string ai 163.
The interleaver (π) 115 rearranges the order in the encoded data bit string ai 163 that is output from the MUX and puncture unit 114, and thus generates another encoded data bit string ci 164.
Based on the encoded data bit string ci 164, the laser driver circuit 116 controls the quantity of laser beam emission, and writes the encoded data bit string ci 164 onto the optical disk 120.
Meanwhile, the reproducing system 130 of the data recording and reproducing device 100 shown in FIG. 1 includes an amplifier 131, an automatic loop gain controller (or AGC: automatic gain controller) 132, a low pass filter 133, an equalizer 134, an analog-to-digital converter (A/D converter) 135, an iterative decoder 136, a controller 137, and an ECC decoder 138. The iterative decoder 136 of the reproducing system 130 shown in FIG. 1 has a memory on its input side.
A MO reproduction signal reproduced from the optical disk 120 by an optical head is subjected to waveform rectification through the amplifier 131, the AGC 132, the low pass filter 133, and the equalizer 134. If data recording is performed at such a high density as to cause waveform interference between two neighboring bits in the data recorded on the recording medium 120, the reproduction signal 122 reproduced from the magneto-optical disk 120 can be equalized to a PR waveform (partial response waveform) 123. Accordingly, the unit formed with the optical disk 120, amplifier 131, the AGC 132, the low pass filter 133, and the equalizer 134 can be regarded as a PR channel (partial response channel) 140. The output signal 123 of the equalizer 134 can be regarded as an actually encoded signal, as the data passes through the PR channel (partial response channel) 140. Thus, the output signal 161 of the ECC encoder 111 can be turbo encoded through the encoding function of the recording system 110 and the actual encoding function of the PR channel 140.
The signal 123 that is waveform-equalized by the PR channel 140 is then converted into a digital value by the A/D converter 135. Sampling values yi that are sequentially output from the A/D converter 135 are stored in the memory in the iterative decoder 136. The sampling values yi 124 stored in the memory are then iteratively decoded (turbo decoded) by the iterative decoder 136.
As described above, the iterative decoder 136 has a decoding function that is compatible with the encoder 113 of the recording system 110 and the actual encoding function of the PR channel 140. FIG. 3 shows an example structure of the iterative decoder 136.
The iterative decoder 300 shown in FIG. 3 is an example of the iterative decoder 136, and includes a memory 301, a PR channel decoder 302, a subtractor 303, a deinterleaver (π−1) 304, a DEMUX and depuncture unit 305, a code decoder 306, a MUX and puncture unit 307, a subtractor 308, an interleaver (π) 309, and a hard decision unit 310.
The memory 301 stores the digital values converted by the A/D converter 135, as described above.
The PR channel decoder 302 is a decoder that is compatible with the actual encoding function of the PR channel 140, and a first a posteriori probability decoder that performs APP decoding (a posteriori probability decoding).
More specifically, the PR channel decoder 302 calculate a log-likelihood ratio L(ci*) that is the ratio of the probability P (ci=1|Y) of a bit ci being 1 to the probability P (ci=0|Y) of the bit ci being 0, on the condition that the input sampling value Y (y1, y2, . . . , yn) sampled by the A/D converter 135 is detected.
The subtractor 303 subtracts a priori information La(ci) based on the output of the code decoder 306, from the likelihood information L(ci*) output from the PR channel decoder 302, thereby obtaining external likelihood information Le(c). The stream of external likelihood information Le(c) sequentially obtained in this manner is rearranged by the deinterleaver (π−1) 304, and is then supplied to the DEMUX and depuncture unit 305. The DEMUX and depuncture unit 305 divides the stream of likelihood information into a stream of likelihood information L(uk) corresponding to a data bit uk and a stream of likelihood information L(pk) corresponding to a parity bit pk.
At the time of the dividing, the information subtracted by the MUX and puncture unit 114 of the recording system 110 shown in FIG. 1 is added in accordance with the rules corresponding to the thinning (puncture) rules. This is called the “depuncture” function.
The code decoder 306 is compatible with the encoder 113 of the recording system 110 shown in FIG. 1, and serves as a second a posteriori probability decoder that performs APP decoding.
More specifically, based on the likelihood information L(uk) corresponding to the data bit and the likelihood information L(pk) corresponding to the parity bit, the code decoder 306 calculates a log-likelihood ratio L(u*) that is represented by the a posteriori probabilities (the probability of uk=1 and the probability of uk=0) with respect to the data bit, and a log-likelihood ratio L(p*) that is represented by the a posteriori probabilities (the probability of pk=1 and the probability of pk=0) with respect to the parity bit.
The stream of log-likelihood ratios L(u*) and the stream of log-likelihood ratios L(p*) sequentially output from the code encoder 306 are supplied to the MUX and puncture unit 307. The MUX and puncture unit 307 integrates the stream of logarithmic likelihood ratios L(u*) and the stream of logarithmic likelihood ratios L(p*).
At the time of the integration, the MUX and puncture unit 307 performs information thinning in accordance with predetermined rules (a “puncture” function). As a result, the MUX and puncture unit 307 outputs likelihood information L(c*). The a priori information Le(c) to be supplied to the code encoder 306 (before the dividing into L(uk) and L(pk)) is then subtracted from the above likelihood information L(c*) by the subtractor 308. As a result, the external likelihood information La(ci) is obtained. The external likelihood information La(ci) is supplied as a priori information to the PR channel decoder 302 via the interleaver (π) 309.
As described above, the iterative decoder 136 that has the PR channel decoder 302 and the code decoder 306 can iteratively perform decoding using the a priori information exchanged between the two decoders. This is called “iterative decoding”.
In this manner, based on the log-likelihood ratio L(u*) with respect to the data bit uk output from the code decoder 306 when the iterative decoding is performed a predetermined number of times, the hard decision unit 310 determines whether the data bit uk is 1 or 0. If the log-likelihood ratio L(u*) is greater than 0, the data bit uk is determined to be 1. If the log-likelihood ratio L(u*) is smaller than 0, the data bit uk is determined to be 0. The determination result is output as decoded data 153 representing the decoding result of the iterative decoder 136. The decoded data 153 is transmitted to the controller 137, which performs a CRC (cyclic redundancy check). Through the CRC, the controller 137 detects an error in the decoded data 153, and determines whether a retry (“re-reproduction”) is necessary.
The decoded data 153 obtained by the iterative decoder 136 is transmitted to the ECC decoder 138. If there is an error in the decoded data 153, the ECC decoder 138 calculates the location and the value of the error in the error correcting code, and thus corrects the error. Alternatively, where the location of the error caused in the error correcting code is somehow known in advance, the data at the location of the error is regarded as lost, and lost correction is performed on the error.
As the recording density of a recording medium is increased, the signal quality (such as SNR or signal to noise ratio) decreases. Therefore, a decoding method with higher precision is always desired. Turbo decoding enables decoding with higher precision. However, there is a problem with turbo decoding, because encoded user data is recorded and is then decoded through iterative decoding, as shown in FIG. 1. With turbo decoding, the entire encoded data unit is adversely affected by noise that is short but has great amplitude.
Through the iterative decoding, an error caused during the recording or reproducing performed on the recording medium is scattered over the entire data unit that is turbo encoded. As a result, the error cannot be corrected through an ECC.
When the above described error is caused, the entire data unit that is turbo encoded may be regarded as lost data, and then error correction may be performed. However, a data unit that is turbo encoded is often a long data unit so as to achieve a great SNR improving effect through the decoding. Therefore, if such a long data unit is treated as lost data, the correct data in the turbo encoded data unit is regarded as lost data, resulting in unnecessary lost correction. Also, in a case where errors are often caused, correction cannot be performed through ECC decoding.